268. DNS檔廣告伺服器-AdguardHome

WHY

有天看文章時,看到有人介紹 Pi-Hole
這是一款 DNS Sinkhole,簡單說就是直接在DNS過濾廣告。
然後查了一下相關訊息,發現另一套 Adguard
這套以前就有看過,但要付費。
但是!!!他有提供免費版本,可以替代Pi-Hole。

Note

隨便找一台機器,使用docker安裝。
下面提供docker-compose版本。

version: '3.8'

services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    restart: unless-stopped
    volumes:
      - ./data/workdir:/opt/adguardhome/work
      - ./date/confdir:/opt/adguardhome/conf
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "3000:3000/tcp"
      - "3310:3310/tcp"
      - "784:784/udp"  # run AdGuard Home as a DNS-over-QUIC⁠ server. 
      - "853:853/udp"   # run AdGuard Home as a DNS-over-QUIC⁠ server. 
      - "8853:8853/udp"  # run AdGuard Home as a DNS-over-QUIC⁠ server. 
    networks:
      - adguard_network

networks:
  adguard_network:
    driver: bridge

由於我是使用docker對映port轉發,
所以使用機器的ip後面加上port 3000,
此時會到設定畫面。
268-fig.1.png

將上面的port,由預設的80改為3310。
(因為我機器的80被用走了),
再來設定帳密,之後都直接下一步即可。

但到了開啟儀表板的按鈕時,需手動更改位置。
因為預設開啟的位置是 172.31.0.2:3310
這是adguard的container ip。
268-fig.2.png

改成上面開啟設定頁面的ip 加上剛剛設定的port 3310, 192.168.103.224:3310
就能開啟登入頁了。

268-fig.3.png

詳情參考入門

如果不想使用docker compose,
dockerhub上面有指令。
如果用docker run的話,可能要看一下打算用哪個port去開啟儀表板。
下面的圖就不太適合了

docker run --name adguardhome\
    --restart unless-stopped\
    -v /my/own/workdir:/opt/adguardhome/work\
    -v /my/own/confdir:/opt/adguardhome/conf\
    -p 53:53/tcp -p 53:53/udp\
    -p 67:67/udp -p 68:68/udp\
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
    -p 853:853/tcp\
    -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    -p 5443:5443/tcp -p 5443:5443/udp\
    -d adguard/adguardhome

之後記得到要使用的裝置上面更改dns。

ref.